iT邦幫忙

2023 iThome 鐵人賽

DAY 24
0
自我挑戰組

從0到有學習JavaScript系列 第 24

第三章 型別、值和變數-問題筆記 undefined

  • 分享至 

  • xImage
  •  

一、undefined 也是一個值嗎?

  1. 是的,undefined 只要是在javaScript中,不需要特別宣告就可以使用,所以它是全域屬性(global property)。
  2. undefined是一個原始型別 (Primitive Value)
  3. 已經宣告過,只是沒有值時,會得到undefined。而完全沒有宣告過,會出現錯誤訊息,並且顯示 "變數" is not defined。
function test(t) {
  if (t === undefined) {            //嚴格=== 比較值與型別
    return 'Undefined value!';
  }
  return t;                         //t如果不是undefined,直接回傳t值
}

let x;

console.log(test(x));               // Expected output: "Undefined value!"

二、udefined有哪些特性?

  1. 不可讀取( no writable): 一旦定義了該屬性,就不能更改或修改該屬性的值。意思是他只能是udefined, 無法再給予一個新的值。
  2. 不可被計算(no enumerable) : 遍歷時不會包括該屬性,例如使用for in 迴圈。
  3. 不可配置 (no configurable): 不能使用JavaScript的屬性操作方法(例如Object.definePropertydelete)修改或刪除該屬性。"undefined"屬性通常不可配置,因為它是內建的全域屬性,具有固定的行為,不應該被修改或刪除。
const myObject = {
  prop1: 'Value 1',
  prop2: 'Value 2',
};

// 定義 prop1 為不可計算
Object.defineProperty(myObject, 'prop1', {
  enumerable: false,
});

// 使用for in 迴圈
for (const key in myObject) {
  console.log(key); 
  // 只有 'prop2' (property name)會被記錄, 'prop1' 直接不見,因為無法被計算
}

Reference:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined


上一篇
第三章 型別、值和變數-問題筆記 undefined
下一篇
第三章 型別、值和變數-問題筆記 undefined typeof void
系列文
從0到有學習JavaScript31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言